package com.house.service;

import com.house.dto.BillDTO;
import com.house.entity.Bill;
import com.house.vo.BillVO;
import org.springframework.data.domain.Page;

import java.util.Map;
import java.util.Optional;

/**
 * @author: GGP
 * @description: 订单Service
 * @time: 2023-04-16 11:22
 **/
public interface BillService {
	/**
	 * 添加订单
	 * @param billDTO
	 * @return
	 */
	Bill saveBill(BillDTO billDTO);

	/**
	 * 条件查询多个带分页
	 * @param billDTO
	 * @return
	 */
	Page<Map<String,Object>> findBills(BillDTO billDTO);

	/**
	 * 房间号查询多个带分页
	 * @param billDTO
	 * @return
	 */
	Page<Map<String,Object>> findByRoomNum(BillDTO billDTO);

	/**
	 * 条件查找单个订单
	 * @param billNumber
	 * @return
	 */
	BillVO findOne(Integer billNumber);

	/**
	 *  修改订单状态
	 * @param billDTO
	 * @return
	 */
	Bill update(BillDTO billDTO);

	/**
	 * 用户id查询
	 * @param billDTO
	 * @return
	 */
	Page<Map<String, Object>> findByUserId(BillDTO billDTO);


	/**
	 * 查近一个月
	 * @param publisherId
	 * @return
	 */
	String grossAmount(Integer publisherId);

	/**
	 * 查总额度
	 * @param publisherId
	 * @return
	 */
	String grossAmounts(Integer publisherId);

	/**
	 * 通过id查找
	 * @param id
	 * @return
	 */
	Optional<Bill> findById(Integer id);
}
